home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Apple Color OneScanner SDK / Scan Image 1.0 / Headers / Proto.h < prev   
Encoding:
C/C++ Source or Header  |  1996-08-24  |  9.2 KB  |  257 lines  |  [TEXT/MPCC]

  1. /*************************************************************************************
  2. #
  3. #        Proto.h
  4. #
  5. #        This file contains the prototypes for the apps procs and funcs
  6. #
  7. #        Author(s):     Michael Marinkovich
  8. #                    Apple Developer Technical Support
  9. #                    marink@apple.com
  10. #
  11. #        Modification History: 
  12. #
  13. #            4/3/96        MWM     Initial coding                     
  14. #
  15. #        Copyright © 1992-96 Apple Computer, Inc., All Rights Reserved
  16. #
  17. #
  18. #        You may incorporate this sample code into your applications without
  19. #        restriction, though the sample code has been provided "AS IS" and the
  20. #        responsibility for its operation is 100% yours.  However, what you are
  21. #        not permitted to do is to redistribute the source as "DSC Sample Code"
  22. #        after having made changes. If you're going to re-distribute the source,
  23. #        we require that you make it clear in the source that the code was
  24. #        descended from Apple Sample Code, but that you've made changes.
  25. #
  26. *************************************************************************************/
  27.  
  28. #include <Displays.h>
  29. #include <ImageCompression.h>
  30.  
  31. #include "ScIntf.h"
  32.  
  33.  
  34. //----------------------------------------------------------------------
  35. //
  36. //    Scanner
  37. //
  38. //----------------------------------------------------------------------
  39.  
  40. OSErr            DoNewScan(CGrafPtr *dstPort);
  41.  
  42. OSErr             DoScan(CGrafPtr dstPort, ScStdFeaturesRec scannerInfo,
  43.                         UserSettingsPtr userSettings, Rect scanRect);
  44.                         
  45. OSErr             GetInputMethods(Boolean *ADF, Boolean *TPU, ScTPUADFInfoPtr TPUADFInfo);
  46.  
  47. OSErr             GetScannerInfo(ScStdFeaturesRec *scannerInfo, ScResPtr *lineArtRes,
  48.                            ScResPtr *halfToneRes, ScResPtr *grayScaleRes,
  49.                             ScResPtr *biLevelColorRes, ScResPtr *fullColorRes, 
  50.                            ScHalfTonePtr *halfToneNames);
  51.                     
  52. OSErr             SetupScan(short scanRef, ScStdFeaturesRec scannerInfo,
  53.                           UserSettingsPtr userSettings, Rect scanRect, 
  54.                           ScScanAreaRec *scanInfo);
  55.                       
  56. OSErr            ScanImage(short scanRef, CGrafPtr dstPort,
  57.                             ScStdFeaturesRec scannerInfo, ScAreaRec scanParams);
  58.  
  59.  
  60. //----------------------------------------------------------------------
  61. //
  62. //    ScanDialog
  63. //
  64. //----------------------------------------------------------------------
  65.  
  66. void             SetupAndScan(void);
  67.  
  68. OSErr             GetUserScanInfo(CGrafPtr *dstPort, ScStdFeaturesRec *scannerInfo, 
  69.                                  ScResPtr lineArtRes, ScResPtr halfToneRes, ScResPtr grayScaleRes, 
  70.                                   ScResPtr biLevelColorRes, ScResPtr fullColorRes, 
  71.                                   ScHalfTonePtr halfToneNames, UserSettingsPtr userSettings);
  72.                                   
  73. OSErr             AdjustScanDialogItems(DialogRef dialog, ScStdFeaturesRec scannerInfo, 
  74.                                       ScResPtr lineArtRes, ScResPtr halfToneRes, 
  75.                                       ScResPtr grayScaleRes, ScResPtr biLevelColorRes, 
  76.                                       ScResPtr fullColorRes, ScHalfTonePtr halfToneNames);
  77.  
  78. long             GetCompModeResolution(short compMode, short item, ScResPtr lineArtRes, 
  79.                                       ScResPtr halfToneRes, ScResPtr grayScaleRes, 
  80.                                       ScResPtr biLevelColorRes, ScResPtr fullColorRes);
  81.  
  82. OSErr             GetUserHalfTone(short *selection, ScHalfTonePtr halfToneNames,
  83.                                 ScStdFeaturesRec scannerInfo);
  84.  
  85. OSErr             AdjustHalfToneItems(DialogRef dialog, ScHalfTonePtr halfToneNames,
  86.                                       ScStdFeaturesRec scannerInfo);
  87.  
  88. OSErr             GetUserTPUSettings(short *TPUFilm, short *TPUVendor);
  89.  
  90. pascal Boolean  StdDialogEventFilter(DialogPtr dialog, EventRecord *event, short *itemHit);
  91.  
  92. void             SetRadioValue(DialogRef dialog, short whichItem, short value);
  93.  
  94. void             SetNotRadioValue(DialogRef dialog, short whichItem);
  95.  
  96.  
  97. //----------------------------------------------------------------------
  98. //
  99. //    Aevt
  100. //
  101. //----------------------------------------------------------------------
  102.  
  103. OSErr             AEInit(void);
  104. pascal OSErr    DoAEOpenApp(AppleEvent *event,AppleEvent reply,long refCon);
  105. pascal OSErr    DoAEQuitApp(AppleEvent *event,AppleEvent reply,long refCon);
  106. pascal OSErr    DoAEOpenDoc(AppleEvent *event,AppleEvent reply,long refCon);
  107. pascal OSErr    DoAEPrintDoc(AppleEvent *event,AppleEvent reply,long refCon);
  108. OSErr             GotAEParams(AppleEvent *appleEvent);
  109.  
  110.  
  111. //----------------------------------------------------------------------
  112. //
  113. //    Initialize
  114. //
  115. //----------------------------------------------------------------------
  116.  
  117. OSErr            Initialize(void);
  118. void            ToolBoxInit(void);
  119. void             CheckEnvironment(void);
  120. OSErr             InitApp(void);
  121. void             MenuSetup(void);
  122.  
  123.  
  124. //----------------------------------------------------------------------
  125. //
  126. //    Main
  127. //
  128. //----------------------------------------------------------------------
  129.  
  130.  
  131. void             HandleError(short errNo,Boolean fatal);
  132. void             HandleAlert(short alertID);
  133.  
  134.  
  135. //----------------------------------------------------------------------
  136. //
  137. //    Events
  138. //
  139. //----------------------------------------------------------------------
  140.  
  141. void            EventLoop(void);
  142. short             MyGetSleep(void);
  143. void             CustomWindowEvent(short eventType,WindowRef window,void *refCon);
  144. void             DoEvent(EventRecord *event);
  145. void             DoIdle(WindowRef window, void *refCon);
  146. void             HandleMouseDown(EventRecord *event);
  147. void             HandleMenuChoice(WindowRef window, void *refCon);
  148. void            HandleContentClick(WindowRef window, void *refCon);
  149. void             HandleZoomClick(WindowRef window, void *refCon);
  150. void             HandleGrow(WindowRef window, void *refCon);
  151. void             UpdateWindow(WindowRef window);
  152. void             DoActivate(WindowRef window, void *refCon);
  153.  
  154.  
  155. //----------------------------------------------------------------------
  156. //
  157. //    Windows
  158. //
  159. //----------------------------------------------------------------------
  160.  
  161. WindowPtr         CreateWindow(short resID, void *wStorage, Rect *bounds, Str255 title,
  162.                         Boolean visible, short procID,short kind, WindowRef behind,
  163.                         Boolean goAwayFlag,long refCon);
  164. OSErr             RemoveWindow(WindowRef window);
  165. void             NewWindowTitle(WindowRef window, Str255 str);
  166. OSErr             InitWindowProcs(WindowRef window, short windKind);
  167. void            DrawWindow(WindowRef window, void *refCon);
  168. void             DrawAboutWindow(WindowRef window, void *refCon);
  169. void             DoResizeWindow (WindowRef window);
  170. void            ActivateWindow(WindowRef window);
  171. void             DeactivateWindow(WindowRef window);
  172. short             GetWindKind(WindowRef window);
  173. Boolean            GetIsAppWindow(WindowRef window);
  174. Boolean         GetIsAboutWindow(WindowRef window);
  175. RgnHandle         GetContentRegion(WindowRef window);
  176. RgnHandle         GetStructureRegion(WindowRef window);
  177.  
  178.  
  179. //----------------------------------------------------------------------
  180. //
  181. //    Displays
  182. //
  183. //----------------------------------------------------------------------
  184.  
  185. OSErr             InstallDMNotification(void);
  186. OSErr             InstallAEDMNotification(void);
  187. OSErr             RemoveDMNotification(void);
  188. OSErr             InstallDMNotificationAE(void);
  189. pascal OSErr     WorldChangedProc(AppleEvent *event);
  190. pascal OSErr     DoAEDisplayUpdate(AppleEvent event,AppleEvent reply,long refCon);
  191. OSErr             HandleNotification(AppleEvent *event);
  192. OSErr             HandleDeviceChange(DisplayIDType displayID, Rect *newRect);
  193. Boolean         OutOfBoundsRect(GDHandle gd, WindowRef window, Rect screenRect);
  194. void             MoveInbounds(WindowRef window, GDHandle gd, Rect screenRect);
  195. void            ResizeInbounds(WindowRef window, GDHandle gd, Rect screenRect);
  196. GDHandle         GetGreatestDevice(WindowRef window);
  197. void             GetWindowRect(WindowRef window, Rect *windRect);
  198. void             ResetStdState(WindowRef window);
  199.  
  200.  
  201. //----------------------------------------------------------------------
  202. //
  203. //    Scrolls
  204. //
  205. //----------------------------------------------------------------------
  206.  
  207. void             InstallScrollBars(WindowRef window, DocHnd doc);
  208. void             AdjustScrollValues(WindowRef window);
  209. void             AdjustScrollbars(WindowRef window, Boolean resize);
  210. pascal void     ScrollActionProc(ControlRef control, short part);
  211. void            ScrollPict(short hAmount,short vAmount,WindowRef window);
  212. void             MyScrollPicture(WindowRef window, short hs, short vs);
  213. void             GetContRect(WindowRef window,Rect *contRect);
  214.  
  215.  
  216. //----------------------------------------------------------------------
  217. //
  218. //    JPEG
  219. //
  220. //----------------------------------------------------------------------
  221.  
  222. CGrafPtr         OpenJPEGFile(FSSpec spec, OSErr *theErr);
  223. CGrafPtr        ConvertJPEG(Handle image);
  224. OSErr             GetJPEGDescription(Handle image, ImageDescriptionHandle desc, Rect *bounds);
  225. GWorldPtr         NewJPEGWorld(short depth, Rect theRect);
  226. OSErr             SaveJPEGFile(StandardFileReply reply, WindowRef window);
  227. pascal OSErr     DataUnloadProc(Ptr data, long bytesNeeded, long refCon);
  228.  
  229.  
  230. //----------------------------------------------------------------------
  231. //
  232. //    PICT
  233. //
  234. //----------------------------------------------------------------------
  235.  
  236. OSErr             OpenPictFile(FSSpec *spec, GWorldPtr *theWorld);
  237. OSErr             SavePictFile(FSSpec *spec, GWorldPtr theWorld);
  238. OSErr             ReadPICTFile(FSSpec *spec, PicHandle *thePict);
  239. OSErr             WritePICTFile(FSSpec *spec, PicHandle thePict);
  240. OSErr             PictToWorld(PicHandle thePict, GWorldPtr *theWorld);
  241. OSErr             WorldToPict(GWorldPtr theWorld, PicHandle *thePict);
  242.  
  243.  
  244. //----------------------------------------------------------------------
  245. //
  246. //    Utils
  247. //
  248. //----------------------------------------------------------------------
  249.  
  250. void            DoOpenNew(void);    
  251. OSErr             DoSaveImage(WindowRef window);
  252. pascal Boolean     CustomFileDlogFilter(CInfoPBPtr theParamBlok, Ptr theDataPtr);
  253. pascal short     CustomGetFileHook(short item, DialogPtr theDlogPtr, void *theData);
  254. pascal short     CustomPutFileHook(short item, DialogPtr theDlogPtr, void *theData);
  255. void            ZeroRect(Rect *r);
  256. void             pstrcpy(StringPtr dst, StringPtr src);
  257. void             pstrcat(StringPtr dst, StringPtr src);